1 City



PHOTO BY TYLER MERBLER
Los Angeles, CA has a population of 3.98M people with a median age of 35.6 and a median household income of $54,432.

2 County



PHOTO BY PAOLO GAMBA
Los Angeles County, CA has a population of 10.1M people with a median age of 36.3 and a median household income of $61,338.


Let’s take a look at the tech industry employment numbers for the past 13 years.

3 Employment Projections

2017 Employment by major occupational group, 2016 and projected 2026 (Numbers in thousands) [1]. Tech employees are compensated nicely due to this tech boom. For example, in 207 while the annual medialn wage for all occupations was $37,000 in the U.S., it was $84,600 for the computer occupations, second only to $102,000 of the management occupations as shown in Table 1.

4 Dinamic Visualizations


Total jobs in the city of Los Angeles and County

5 Maps

2017 Dot density zip code map
Each dot = 10 tech jobs

6 Correlation Between the CHCI and the Median House Income of Los Angeles County Zip Codes


Fig. 8 shows the association between the 2012 CHCI and the 2016 median household income of 282 zip codes in L.A. County. We can see a very strong correlation correlation between the human capital level [23] and the household income for the zip code in L.A. It demonstrates the importance to invest in education (chci) in order to create more productive workforce and more high paying jobs.

## Warning: Removed 7 rows containing non-finite values (stat_smooth).
## Warning: Removed 7 rows containing missing values (geom_point).

## Warning: Removed 7 rows containing missing values (geom_point).
## Warning: Removed 7 rows containing missing values (geom_text_repel).

################

## Need to clean code bellow

# str(df.17)
# df.17$GEOID <- as.factor(df.17$GEOID)
# names(masterzip) <- c("GEOID", "name")
# z <- inner_join(df.17, masterzip, by = "GEOID")
# str(z)
# top_zip <- z %>% arrange(desc(per)) %>% top_n(20, wt=per)
# 
# names(top_zip) <- c("zip", "V1",    "year",  "tech",  "info",  "prof",  "per",   "total", "name")
# str(cor)
# str(top_zip)
# top_zip$zip <- as.numeric(top_zip$zip)
# 
# cor <- inner_join(top_zip, cor, by="zip")
################
# NEW

# Create the scatter plot with regression line
# 
# p7 <- ggplot(cor, aes(x=chci, y=estimate)) +
#   geom_point(colour = "blue", size=4) +
#   labs(title = "Fig. 8 ",
#        x = "City Human Capital Index", y = "Median Household Income ($)") +
#   scale_x_continuous(limits = c(85, 175)) +
#     geom_smooth(colour = "red", method=lm,   # Add linear regression line
#               se=FALSE)    # Don't add shaded confidence region
# p7

# p1 <- ggplot(cor, aes(x=chci, y=log(estimate)))+
#   geom_point(colour = "red")
# p1
# p2 <- p1 +
#   geom_smooth(mapping = aes(linetype = "r2"),
#               method = "lm",
#               formula = y ~ x , se = FALSE,
#               color = "black")
# p2 + geom_point()
# p2 + geom_point(shape = 1, size = 2) # Changes to shape = 1
# p3=p2 + geom_point(shape = 1, size = 3, stroke=1.5)
# p3
# # Labels overlap - use ggrepel
# # install.packages("ggrepel") 
# library("ggrepel") # Repel overlapping text labels away from each other.
# p4 <- p3 + geom_text_repel(aes(label = zip), size=2) # Uses greppel text repel
# p4



# Adds Title / Lables
# p5 = p4+
# scale_x_continuous(name = "Capital Human City Index")+
# scale_y_continuous(name = "Log Income, 2016") +
# ggtitle("CHCI and Median Income Per Zip Code")
# p5
# 
# summary(cor)
# chci media 163

################
# str(df.17)
# df.17$GEOID <- as.factor(df.17$GEOID)
# names(masterzip) <- c("GEOID", "name")
# z <- inner_join(df.17, masterzip, by = "GEOID")
# str(z)
# top_zip <- z %>% arrange(desc(per)) %>% top_n(30, wt=per)
# str(cor)
# str(top_zip)


# # Creates vector with list of top tech zip codes
# top_zip$GEOID -> zip.label
# 
# # Only shows labels from list created
# 
# library(ggplot2)
# library(readxl) 
# library(tidyverse) # Includes ggplot2
# library(dplyr)
# 
# p6 = p5 + geom_text(aes(label = zip),
#             color = "gray20", data = filter(cor, cor$zip %in% zip.label))
# p6
# 
# 
# p4 = p3 + geom_text(aes(label = Country),
#             color = "gray20", data = filter(cpigdp, Country %in% country.label))

7 Conclusions

8 References

  1. [1] Assumptions Tech industry employment was calculated using the following: (1) Information jobs (NAICS: 51), and (2) Professional, Scientific, & Technical Skills (NAICS: 54). Data source: Quarterly Census of Employment and Wages (QCEW) developed through a cooperative program between the states and the U.S. Bureau of Labor Statistics.– These data are summarized by Industry Sector (2-digit NAICS).
  2. [2] https://www.bls.gov/emp/tables/emp-by-major-occupational-group.htm
  3. [3] Dowload shape files for county from LA Data Portal https://data.lacity.org/ Los Angeles Open Data
  4. [4] https://data.lacounty.gov/Geospatial/ZIP-Codes/65v5-jw9f
  5. [5] ACS
  1. [x] http://www.anderson.ucla.edu/centers/ucla-anderson-forecast/projects-and-partnerships/city-human-capital-index

9 Acknowledgements